package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.News;
import cn.wolfcode.trip.base.domain.User;
import cn.wolfcode.trip.base.query.FollowQueryObject;
import cn.wolfcode.trip.base.query.QueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface IUserService {
    /**
     * 注册用户
     * @param user
     */
    void register(User user);
    /**
     * 用户登陆
     * @param user
     */
    User login(User user);
    /**
     * 更新
     * @param user
     */
    void update(User user);
    /**
     * 分页
     * @param qo
     * @return
     */
    PageInfo<User> query(QueryObject qo);

    User get(Long id);

   /* List<News> getNewsByUserId(Long newsId);*/
    /**
     * 添加关注
     */
    void follow(Long followId, Long fansId);
    /**
     * 取消关注
     */
    void disFollow(Long followId, Long fansId);
    /**
     * 检查关注
     */
    void checkFollow(Long followId, Long fansId);
    /**
     * 查询关注
     */
    PageInfo queryForFollow(FollowQueryObject qo);
    /**
     * 查询粉丝
     */
    PageInfo queryForFan(FollowQueryObject qo);

    /**
     * hyy
     * 查询是否可以兑换该商品
     * @param id 用户的id
     * @param commodityId 商品的id
     */
    void checkIsBuyByMark(Long id, Long commodityId);
    /**
     * hyy
     * 查询是否可以购买该商品
     * @param id 用户的id
     * @param commodityId 商品的id
     */
    void checkIsBuyByMoney(Long id, Long commodityId);

    /**
     * 根据id查用户余额
     * @param id
     * @return  用户对象
     */
    User selectBalance(Long id);
}
